package com.it.page;

import com.github.pagehelper.PageInfo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;
import java.util.Objects;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class PageImpl<T> {
    private long page;
    private long pageSize;
    private long total;
    private List<T> listData;

    public static <T> PageImpl<T> of(PageInfo<T> page) {
        Objects.requireNonNull(page);
        PageImpl<T> pageImpl = new PageImpl<>();
        pageImpl.setPage(page.getPageNum());
        pageImpl.setPageSize(page.getPageSize());
        pageImpl.setTotal(page.getTotal());
        pageImpl.setListData(page.getList());
        return pageImpl;
    }

    public static <T> PageImpl<T> of(PageInfo<T> page, List<T> listData) {
        Objects.requireNonNull(page);
        PageImpl<T> pageImpl = new PageImpl<>();
        pageImpl.setPage(page.getPageNum());
        pageImpl.setPageSize(page.getPageSize());
        pageImpl.setTotal(page.getTotal());
        pageImpl.setListData(listData);
        return pageImpl;
    }
}
